function mostrarDerivacion(idcargar, idFicha, alGuardar) {

    var url = '/Fichas/controllers/C_Derivacion.php';
//
    var storeTipo = new Ext.data.JsonStore({
	fields: [
	    {
		name:'nombre',
		mapping:'NOMBRE'
	    }
	],
	root: 'data',
	url: url
    });
    storeTipo.on('beforeload', function() {
	storeTipo.setBaseParam('method', 'listarTiposDerivacion');
    });
    storeTipo.reload({
        callback: callbackTipo
    });
    function callbackTipo(r, options, success) {
        if (success) {
            cargaEspecialista();
        }
    }

    var storeEspecialista = new Ext.data.JsonStore({
	fields: [
	    {
		name:'nombre',
		mapping:'NOMBRE_COMPLETO'
	    },
	    {
		name:'id',
		mapping: 'ID_USUARIO'
	    }
	],
	root: 'data',
	url: '/Fichas/controllers/C_Usuario.php'
    });
    storeEspecialista.on('beforeload', function() {
	storeEspecialista.setBaseParam('method', 'listarEspecialistas');
    });
    function cargaEspecialista() {
        storeEspecialista.reload({
            callback: function(r, options, success) {
                if (success) {
                    cargaInicial();
                }
            }
        });
    }
    



    // THE META-TEMA-TEAM
    var principal = new Ext.FormPanel(PanelSimple({
        nesting: 2,
        xtype: 'panel',
        layout: 'form',
	title: "Derivación",
	items: [
	    {
		xtype: 'textfield',
                id: 'pDerFolio',
                fieldLabel: 'Folio'
		,disabled: true
	    }
            ,
	    {
		xtype: 'combo',
		fieldLabel: 'Especialista responsable',
		id: 'pDerEspecialista',
                triggerAction: 'all',
                displayField: 'nombre',
                valueField: 'id',
                store: storeEspecialista
	    },
	    {
		xtype: 'combo',
		fieldLabel: 'Tipo',
		id: 'pDerTipo',
                triggerAction: 'all',
                displayField: 'nombre',
                valueField: 'nombre',
		store: storeTipo
	    },
	    {
		xtype: 'datefield',
		fieldLabel: 'Fecha',
		id: 'pDerFecha',
		maxValue: new Date(),
                value : new Date()
	    },
	    {
		xtype: 'textarea',
		fieldLabel: 'Observaciones',
		id: 'pDerObservaciones',
		height: 100
            }
	]
        ,
	tbar: [
	    {
		id: 'Guardar',
		text: 'Guardar',
                iconCls: 'save-form',
		handler: push
	    }
	]
    }));
            
    function push() {
        if (idcargar != -1){
            // editar
            principal.getForm().submit({
		url: url,
		success: exito,
		failure:this.onFailure,
		params:{
                    idDerivacion: idcargar,
		    idUsuario: Ext.getCmp('pDerEspecialista').getValue(),
		    method:'editarDerivacion'
		},
		waitMsg:'Guardando...'
	    });
        } else {
            // crear
            principal.getForm().submit({
		url: url,
		success: exito,
		failure:this.onFailure,
		params:{
		    idFicha: idFicha,
		    method:'crearDerivacion',
		    idUsuario: Ext.getCmp('pDerEspecialista').getValue()
		},
		waitMsg:'Guardando...'
	    });
	    
	}
        
    }
    
    function exito(form, action) {
	
	// CREANDO
        if (idcargar == -1) {
            idcargar = action.result.data.id;
            Ext.getCmp("pDerFolio").setValue(idcargar);
        }
        if (alGuardar) {
            alGuardar();
        }
    }
    function  cargaInicial() {
        if (idcargar != -1) {

            principal.load({
                url: url,
                waitMsg: "Cargando...",
                success: function (form, action) {
                    //principal.getComponent("pDerTipo").setValue()
                },
                params: {
                    method: 'obtenerDerivacion',
                    idDerivacion: idcargar
                }
            });
    //        Ext.getCmp("pDerFolio").setValue(idcargar);
        }
    }
    
    return principal;
}
